package com.cisystem.system.service;

import java.util.List;

import com.cisystem.common.core.domain.AjaxResult;
import com.cisystem.system.domain.FileStore;

/**
 * 文件数据Service接口
 *
 * @author xxx
 * @date 2024-07-31
 */
public interface IFileStoreService {
    /**
     * 查询文件数据
     *
     * @param id 文件数据主键
     * @return 文件数据
     */
    public FileStore selectFileStoreById(String id);

    /**
     * 查询文件数据列表
     *
     * @param fileStore 文件数据
     * @return 文件数据集合
     */
    public List<FileStore> selectFileStoreList(FileStore fileStore);

    /**
     * 新增文件数据
     *
     * @param fileStore 文件数据
     * @return 结果
     */
    public int insertFileStore(FileStore fileStore);

    /**
     * 修改文件数据
     *
     * @param fileStore 文件数据
     * @return 结果
     */
    public int updateFileStore(FileStore fileStore);

    /**
     * 批量删除文件数据
     *
     * @param ids 需要删除的文件数据主键集合
     * @return 结果
     */
    public int deleteFileStoreByIds(String[] ids);

    /**
     * 删除文件数据信息
     *
     * @param id 文件数据主键
     * @return 结果
     */
    public int deleteFileStoreById(String id);

    public void syncFileStore();

    /**
     * 读取指定一级文件路径下的所有文件
     */
    List<FileStore> listAllByDirectory(FileStore fileStore);

    /**
     * 按照文件夹id获取所有文件
     */
    List<FileStore> getAllByDirIds(List<String> childDirIds);

    /**
     * 设置是否可见
     */
    void editVisible(String fileId, String visible);

    List<FileStore> listAllByFileIds(List<String> fileids);

}
